/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package vista;

import hibernatecontrolador.exceptions.NonexistentEntityException;
import hibernatemodelo.Contacto;
import hibernatemodelo.Nota;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

/**
 * Formulario que gestiona las notas del usuario
 * @author M.Luz García
 * @author Luis Massó
 */
public class JIntNotas extends javax.swing.JInternalFrame
{

    private int idActual;
    private JTable tabla;
    private DefaultTableModel dtm;
    private Contacto usuario;

    public void setUsuario(Contacto usuario)
    {
        this.usuario = usuario;
    }

    MdiPrueba padre;

    public MdiPrueba getPadre()
    {
        return padre;
    }

    void setPadre(MdiPrueba aThis)
    {
        this.padre = padre;
    }

    /**
     * Creates new form JIntNotas
     */
    public JIntNotas()
    {
        initComponents();

        // llamamos al método para establecer la hora de la nota
        limpiarFormulario();

        // instanciamos el dtm para el jtable
        dtm = new DefaultTableModel();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents()
    {

        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLFecha = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTTextoNota = new javax.swing.JTextArea();
        jCbImportanciaNota = new javax.swing.JComboBox();
        jBNotasGuardar = new javax.swing.JButton();
        jBNotasEliminar = new javax.swing.JButton();
        jBNotasModificar = new javax.swing.JButton();
        jBNotasBuscarTexto = new javax.swing.JButton();
        jScrollPane2 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        jLabel2 = new javax.swing.JLabel();
        jBNotasLimpiar = new javax.swing.JButton();
        jBNotasBuscarImportancia = new javax.swing.JButton();

        setClosable(true);
        setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE);
        addInternalFrameListener(new javax.swing.event.InternalFrameListener()
        {
            public void internalFrameOpened(javax.swing.event.InternalFrameEvent evt)
            {
                formInternalFrameOpened(evt);
            }
            public void internalFrameClosing(javax.swing.event.InternalFrameEvent evt)
            {
            }
            public void internalFrameClosed(javax.swing.event.InternalFrameEvent evt)
            {
            }
            public void internalFrameIconified(javax.swing.event.InternalFrameEvent evt)
            {
            }
            public void internalFrameDeiconified(javax.swing.event.InternalFrameEvent evt)
            {
            }
            public void internalFrameActivated(javax.swing.event.InternalFrameEvent evt)
            {
            }
            public void internalFrameDeactivated(javax.swing.event.InternalFrameEvent evt)
            {
            }
        });

        jLabel1.setText("Fecha: ");

        jLFecha.setText("12/12/2015");

        jLabel3.setText("Texto: ");

        jTTextoNota.setColumns(20);
        jTTextoNota.setRows(5);
        jScrollPane1.setViewportView(jTTextoNota);

        jCbImportanciaNota.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Baja", "Media", "Alta", " " }));

        jBNotasGuardar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/save.png"))); // NOI18N
        jBNotasGuardar.setText("Guardar");
        jBNotasGuardar.setPreferredSize(new java.awt.Dimension(122, 45));
        jBNotasGuardar.addActionListener(new java.awt.event.ActionListener()
        {
            public void actionPerformed(java.awt.event.ActionEvent evt)
            {
                jBNotasGuardarActionPerformed(evt);
            }
        });

        jBNotasEliminar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/delete.png"))); // NOI18N
        jBNotasEliminar.setText("Eliminar");
        jBNotasEliminar.setPreferredSize(new java.awt.Dimension(122, 45));
        jBNotasEliminar.addActionListener(new java.awt.event.ActionListener()
        {
            public void actionPerformed(java.awt.event.ActionEvent evt)
            {
                jBNotasEliminarActionPerformed(evt);
            }
        });

        jBNotasModificar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/file_edit.png"))); // NOI18N
        jBNotasModificar.setText("Modificar");
        jBNotasModificar.setPreferredSize(new java.awt.Dimension(122, 45));
        jBNotasModificar.addActionListener(new java.awt.event.ActionListener()
        {
            public void actionPerformed(java.awt.event.ActionEvent evt)
            {
                jBNotasModificarActionPerformed(evt);
            }
        });

        jBNotasBuscarTexto.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/lupa.png"))); // NOI18N
        jBNotasBuscarTexto.setText("Buscar");
        jBNotasBuscarTexto.setPreferredSize(new java.awt.Dimension(122, 45));
        jBNotasBuscarTexto.addActionListener(new java.awt.event.ActionListener()
        {
            public void actionPerformed(java.awt.event.ActionEvent evt)
            {
                jBNotasBuscarTextoActionPerformed(evt);
            }
        });

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][]
            {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String []
            {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        )
        {
            boolean[] canEdit = new boolean []
            {
                false, false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex)
            {
                return canEdit [columnIndex];
            }
        });
        jTable1.addMouseListener(new java.awt.event.MouseAdapter()
        {
            public void mouseClicked(java.awt.event.MouseEvent evt)
            {
                jTable1MouseClicked(evt);
            }
        });
        jScrollPane2.setViewportView(jTable1);

        jLabel2.setText("Importancia:");

        jBNotasLimpiar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/escoba.png"))); // NOI18N
        jBNotasLimpiar.setText("Limpiar");
        jBNotasLimpiar.setPreferredSize(new java.awt.Dimension(122, 45));
        jBNotasLimpiar.addActionListener(new java.awt.event.ActionListener()
        {
            public void actionPerformed(java.awt.event.ActionEvent evt)
            {
                jBNotasLimpiarActionPerformed(evt);
            }
        });

        jBNotasBuscarImportancia.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/lupa.png"))); // NOI18N
        jBNotasBuscarImportancia.setPreferredSize(new java.awt.Dimension(122, 45));
        jBNotasBuscarImportancia.addActionListener(new java.awt.event.ActionListener()
        {
            public void actionPerformed(java.awt.event.ActionEvent evt)
            {
                jBNotasBuscarImportanciaActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 423, Short.MAX_VALUE)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addComponent(jLabel3)
                                .addGap(0, 0, Short.MAX_VALUE))))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jBNotasBuscarTexto, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(jBNotasLimpiar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jBNotasModificar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jBNotasEliminar, javax.swing.GroupLayout.PREFERRED_SIZE, 132, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jBNotasGuardar, javax.swing.GroupLayout.PREFERRED_SIZE, 144, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addComponent(jLabel1)
                .addGap(18, 18, 18)
                .addComponent(jLFecha)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jLabel2)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jCbImportanciaNota, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jBNotasBuscarImportancia, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(63, 63, 63))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLFecha, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jCbImportanciaNota)
                                .addComponent(jLabel2))
                            .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                    .addComponent(jBNotasBuscarImportancia, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(18, 18, 18)
                        .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                        .addGap(8, 8, 8)
                        .addComponent(jLabel3)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 292, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jBNotasEliminar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jBNotasModificar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jBNotasBuscarTexto, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jBNotasGuardar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jBNotasLimpiar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    /**
     * Método que crea una nueva nota
     *
     * @param evt
     */
    private void jBNotasGuardarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBNotasGuardarActionPerformed
        Nota nota = NotaFromCampos();

        MdiPrueba.notaControlador.create(nota);

        // actualizamos la lista de notas
        MdiPrueba.listaNotas = MdiPrueba.notaControlador.findNotaEntities();
        actualizarDataTable();
        jTTextoNota.setText("");
        idActual = 0;
    }//GEN-LAST:event_jBNotasGuardarActionPerformed

    /**
     * Método que busca un texto en las notas y las muestra en el table
     *
     * @param evt
     */
    private void jBNotasBuscarTextoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBNotasBuscarTextoActionPerformed
        String texto = JOptionPane.showInputDialog(null, "Introduzca el texto a buscar:");

        if (texto != "")
        {
            MdiPrueba.listaNotas = MdiPrueba.notaControlador.findNotaEntities();

            SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
            String fecha;
            inicializarDtm();

            // Mostramos los datos en el grid
            for (Nota n : MdiPrueba.listaNotas)
            {
                if (n.getIdcreador().getId() == usuario.getId() && n.getTexto().toUpperCase().contains(texto.toUpperCase()))
                {
                    Object[] obj = new Object[4];
                    obj[0] = n.getId();
                    fecha = formato.format(n.getFechacreacion());
                    obj[1] = fecha;
                    int imp = n.getImportancia();
                    obj[2] = getImportanciaString(imp);
                    obj[3] = n.getTexto().substring(0, 15) + "...";

                    dtm.addRow(obj);
                }
            }
        }
    }//GEN-LAST:event_jBNotasBuscarTextoActionPerformed

    /**
     * Método que se ejecuta cuando se abre el formulario
     *
     * @param evt
     */
    private void formInternalFrameOpened(javax.swing.event.InternalFrameEvent evt)//GEN-FIRST:event_formInternalFrameOpened
    {//GEN-HEADEREND:event_formInternalFrameOpened
        actualizarDataTable();
    }//GEN-LAST:event_formInternalFrameOpened

    /**
     * Método que se ejecuta al hacer click sobre una fila de la tabla de notas
     * @param evt 
     */
    private void jTable1MouseClicked(java.awt.event.MouseEvent evt)//GEN-FIRST:event_jTable1MouseClicked
    {//GEN-HEADEREND:event_jTable1MouseClicked
        // extraemos el número de la fila y de la columna
        int f = jTable1.rowAtPoint(evt.getPoint());
        int c = jTable1.columnAtPoint(evt.getPoint());

        if ((f > -1) && (c > -1))
        {
            idActual = Integer.parseInt(String.valueOf(dtm.getValueAt(f, 0)));

            Nota nota = MdiPrueba.notaControlador.findNota(idActual);

            SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
            jLFecha.setText(formato.format(nota.getFechacreacion()));

            jCbImportanciaNota.setSelectedIndex(nota.getImportancia());
            jTTextoNota.setText(nota.getTexto());
        }
    }//GEN-LAST:event_jTable1MouseClicked

    /**
     * Método para eliminar una nota
     *
     * @param evt
     */
    private void jBNotasEliminarActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jBNotasEliminarActionPerformed
    {//GEN-HEADEREND:event_jBNotasEliminarActionPerformed
        String mensaje = "¿Seguro que quiere eliminar la nota actual";
        String titulo = "Modificación";
        int respuesta = JOptionPane.showConfirmDialog(padre, mensaje, titulo, JOptionPane.YES_NO_OPTION);

        if (respuesta == JOptionPane.YES_OPTION)
        {
            try
            {
                MdiPrueba.notaControlador.destroy(idActual);
            } catch (NonexistentEntityException ex)
            {
                JOptionPane.showMessageDialog(null, "Ha habido un error eliminando el registro. " + ex.getMessage());
            }
            // actualizamos la lista de notas y la tabla
            MdiPrueba.listaNotas = MdiPrueba.notaControlador.findNotaEntities();
            actualizarDataTable();
            jTTextoNota.setText("");
            idActual = 0;

        }
    }//GEN-LAST:event_jBNotasEliminarActionPerformed

    /**
     * Método para modificar una nota
     *
     * @param evt
     */
    private void jBNotasModificarActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jBNotasModificarActionPerformed
    {//GEN-HEADEREND:event_jBNotasModificarActionPerformed
        String mensaje = "¿Seguro que quiere modificar la nota actual con los cambios?";
        String titulo = "Modificación";
        int respuesta = JOptionPane.showConfirmDialog(padre, mensaje, titulo, JOptionPane.YES_NO_OPTION);
        if (respuesta == JOptionPane.YES_OPTION)
        {
            Nota nota = NotaFromCampos();
            nota.setId(idActual);

            try
            {
                MdiPrueba.notaControlador.edit(nota);
            } catch (Exception ex)
            {
                JOptionPane.showMessageDialog(null, "Ha habido un error modificando el registro. " + ex.getMessage());
            }
            // actualizamos la lista de notas y la tabla
            MdiPrueba.listaNotas = MdiPrueba.notaControlador.findNotaEntities();
            actualizarDataTable();
            jTTextoNota.setText("");
            idActual = 0;
        }
    }//GEN-LAST:event_jBNotasModificarActionPerformed

    /**
     * Limpiamos los textbox, inicializamos la lista y el grid
     *
     * @param evt
     */
    private void jBNotasLimpiarActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jBNotasLimpiarActionPerformed
    {//GEN-HEADEREND:event_jBNotasLimpiarActionPerformed
        limpiarFormulario();

        MdiPrueba.listaNotas = MdiPrueba.notaControlador.findNotaEntities();

        actualizarDataTable();
    }//GEN-LAST:event_jBNotasLimpiarActionPerformed

    /**
     * Método que se ejecuta al hacer click en el botón de buscar por prioridad 
     * de la nota
     * @param evt 
     */
    private void jBNotasBuscarImportanciaActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_jBNotasBuscarImportanciaActionPerformed
    {//GEN-HEADEREND:event_jBNotasBuscarImportanciaActionPerformed
        int importancia = jCbImportanciaNota.getSelectedIndex();

        MdiPrueba.listaNotas = MdiPrueba.notaControlador.notaporImportancia(importancia);

        SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
        String fecha;
        inicializarDtm();

        // Mostramos los datos en el grid
        for (Nota n : MdiPrueba.listaNotas)
        {
            if (n.getIdcreador().getId() == usuario.getId())
            {
                Object[] obj = new Object[4];
                obj[0] = n.getId();
                fecha = formato.format(n.getFechacreacion());
                obj[1] = fecha;
                int imp = n.getImportancia();
                obj[2] = getImportanciaString(imp);
                obj[3] = n.getTexto().substring(0, 15) + "...";

                dtm.addRow(obj);
            }
        }
    }//GEN-LAST:event_jBNotasBuscarImportanciaActionPerformed


    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jBNotasBuscarImportancia;
    private javax.swing.JButton jBNotasBuscarTexto;
    private javax.swing.JButton jBNotasEliminar;
    private javax.swing.JButton jBNotasGuardar;
    private javax.swing.JButton jBNotasLimpiar;
    private javax.swing.JButton jBNotasModificar;
    private javax.swing.JComboBox jCbImportanciaNota;
    private javax.swing.JLabel jLFecha;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTextArea jTTextoNota;
    private javax.swing.JTable jTable1;
    // End of variables declaration//GEN-END:variables

    /**
     * Método que crea una nota a partir de los campos del formulario
     *
     * @return (Nota)
     */
    private Nota NotaFromCampos()
    {
        Nota nota;
        Date fecha = new Date(jLFecha.getText());
        String texto = jTTextoNota.getText();
        int importancia = jCbImportanciaNota.getSelectedIndex();

        nota = new Nota();

        nota.setIdcreador(usuario);
        nota.setFechacreacion(fecha);
        nota.setTexto(texto);
        nota.setImportancia(importancia);

        return nota;
    }

    /**
     * Método que establece en el label correspondiente la hora actual
     */
    private void limpiarFormulario()
    {
        Date date = new Date();
        SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");

        jLFecha.setText(formato.format(date));
        jCbImportanciaNota.setSelectedIndex(0);
        jTTextoNota.setText("");

    }

    /**
     * Método: InicializarDtm() Borra todas las lineas de un grid.
     */
    private void inicializarDtm()
    {
        tabla = this.jTable1;
        tabla.setModel(dtm);

        for (int i = dtm.getRowCount() - 1; i >= 0; i--)
        {
            dtm.removeRow(i);
        }

        java.lang.Object[] colIdentifiers =
        {
            "ID", "FECHA", "IMPORTANCIA", "TEXTO"
        };
        dtm.setColumnIdentifiers(colIdentifiers);

    }

    /**
     * Método que actualiza la tabla de notas
     */
    private void actualizarDataTable()
    {
        SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
        String fecha;
        inicializarDtm();

        // Mostramos los datos en el grid
        for (Nota n : MdiPrueba.listaNotas)
        {
            if (n.getIdcreador().getId() == usuario.getId())
            {
                Object[] obj = new Object[4];
                obj[0] = n.getId();
                fecha = formato.format(n.getFechacreacion());
                obj[1] = fecha;
                int imp = n.getImportancia();
                obj[2] = getImportanciaString(imp);
                obj[3] = n.getTexto().substring(0, 15) + "...";

                dtm.addRow(obj);
            }
        }
    }

    /**
     * Método que convierte el integer del campo 'importancia' que hay en la bd
     * en cadena de texto
     *
     * @param n
     * @return
     */
    private String getImportanciaString(int n)
    {
        String cad = "BAJA";
        switch (n)
        {
            case 1:
                cad = "MEDIA";
                break;
            case 2:
                cad = "ALTA";
                break;
        }
        return cad;
    }
}
